package com.yxw.yxnet_cd_center.customer_service.mapper;

import com.yxw.yxnet_cd_center.customer_service.entity.YxCsMenuEntity;
import com.yxw.yxnet_cd_center.customer_service.entity.YxCsUserRoleEntity;
import com.yxw.yxnet_cd_center.customer_service.entity.YxCsUserEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yxw.yxnet_cd_center.customer_service.dto.UserEmpQueryDTO;
import com.yxw.yxnet_cd_center.customer_service.vo.UserEmpVO;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author liuxin
 * @date 2023.09.13
 */
@Repository
public interface UserEmpMapper extends BaseMapper<YxCsUserEntity> {

    /**
     * 批量插入用户与角色的关联数据
     *
     * @param userRoleList 若干个用户与角色的关联数据的集合
     * @return
     */
    int insertUserRoleBatch(List<YxCsUserRoleEntity> userRoleList);

    /**
     * 根据id删除员工
     * @param id
     */
    void deleteUserById(Long id);

    /**
     * 批量删除员工
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteUserByIds(List<Long> ids);

    /**
     * 修改密码
     * @param user
     * @return
     */
    int updatePassword(YxCsUserEntity user);

    /**
     * 根据id查询员工信息
     * @param id
     * @return
     */
    UserEmpVO selectUserById(Long id);

    /**
     * 查询员工列表
     * @return
     */
    List<UserEmpVO> getAll();

    /**
     * 条件查询员工列表
     * @param page
     * @param dto
     * @return
     */
    List<UserEmpVO> getUserEmpList(Page<UserEmpVO> page, @Param("dto") UserEmpQueryDTO dto);

    /**
     *  查询对应菜单列表
     * @param menuIds
     * @return
     */
    List<YxCsMenuEntity> selectList(List<Long> menuIds);

    /**
     * 查询工单中心列表
     * @return
     */
    List<UserEmpVO> workOrderList();

    /**
     * 条件查询员工列表
     * @param page
     * @param dto
     * @return
     */
    List<UserEmpVO> getWorkOrderList(Page<UserEmpVO> page, @Param("dto") UserEmpQueryDTO dto);

}
